<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:c="http://java.sun.com/jsp/jstl/core">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form id="formProjectData">
           
        <p:panel id="panelProject" header="WUDT ..O/19 Połączenia kołnierzowe" >
            <p:selectBooleanCheckbox value="#{controller.tabFlangeDataDisable}" itemLabel="Obliczenia kołnierza" valueChangeListener="#{controller.flangeDisableChange()}">
                <p:ajax update=":dataContent:formProjectData:accordionPanelProjectData"/>
            </p:selectBooleanCheckbox>
        </p:panel>
        
            <p:accordionPanel id="accordionPanelProjectData" multiple="true" onTabChange="#{controller.activeIndex}" activeIndex="#{controller.activeIndex}" dynamic="true">
<!-- Opis projektu -->
            <p:tab id="tabProjectDescription" title="Opis projektu">
                
            </p:tab>
                
<!-- Dane medium -->
            <p:tab id="tabMediumData" title="Dane medium: ilość stanów pracy: #{controller.workConSize()}">
                <p:panelGrid id="workCond">
                   <p:row>
                       <p:column colspan="1"><h:outputLabel value="nazwa medium"/></p:column>
                       <p:column colspan="2">
                           <p:inputText id="medium_name" value="#{workCondition.medium}" size="30" required="true" requiredMessage="Nazwa medium jest wymagana."/>
                       </p:column>
                   </p:row>

                    <p:row id="buttons">
                       <p:column><h:outputLabel value="Stan pracy "/>
                           <p:commandButton
                               title="Dodaj stan pracy"
                               ajax="false"
                               action="#{controller.workCondAdd()}"
                               update="buttons"
                               icon="ui-icon-plus">
                               <!--onclick="alert('Dodano stan pracy: ')"-->
                           </p:commandButton>                           
                       </p:column>
                       
                       <c:forEach var="i" begin="0" end="#{controller.workConSize()}" step="1"> 
                           <p:column>
                               <c:if test="${i>0}">
                                   <p:commandButton
                                       type="button"
                                       id="remove${i}"
                                       title="stan${i}"
                                       action="#{controller.workCondRemove(i)}"
                                       update="tabMediumData"
                                       icon="ui-icon-minus"/>
                               </c:if> 
                           </p:column>
                       </c:forEach>
                   </p:row>
                 
                    <p:row id="pressures">
                        <p:column><h:outputLabel value="ciśnienie obliczeniowe"/></p:column>
                        <c:forEach var="i" begin="0" end="#{controller.workCondNo}" step="1"> 
                            <p:column>
                                <p:column><h:outputLabel value="p${i} ="/></p:column>
                                <p:spinner id="pressure_${i}" value="#{workCondition.po}" stepFactor="0.5" required="true" size="8">
                                    <f:validateDoubleRange minimum="0.01" maximum="10000.0"/>
                                    <p:ajax update=":dataContent, :resultContent:FlangesResult:GasketGeo" process="@this"/>
                                </p:spinner> 
                                <h:message for="pressure"/>
                            </p:column>
                        </c:forEach>
                        <p:column><h:outputLabel value="MPa"/></p:column>
                    </p:row>
                    
                    <p:row id="temperatures">
                        <p:column><h:outputLabel value="Temperatura obliczeniowa"/></p:column>
                        <c:forEach var="i" begin="0" end="#{controller.workCondNo}" step="1">
                            <p:column>
                                <h:outputLabel value="T${i} = "/>
                                <p:spinner id="temperature_${i}" value="#{workCondition.to}" stepFactor="0.5" size="8">
                                    <f:validateDoubleRange minimum="-273.00" maximum="1200.0"/>
                                    <p:ajax update=":resultContent:FlangesResult:GasketGeo" process="@this"/>
                                </p:spinner>
                            </p:column>
                        </c:forEach>
                        <p:column><h:outputLabel value="oC"/></p:column>                       
                    </p:row>
                    
                   <!-- współczynnik b uszczelki zależny od temperatury -->
                   <p:row>
                       <p:column><h:outputLabel value="współczynnik uszczelki"/></p:column>
                       <c:forEach var="i" begin="0" end="0" step="1">
                           <p:column>
                            <h:outputLabel value="b${i} = "/>
                            <p:spinner id="b_factor_${i}" value="#{workCondition.b}" stepFactor="0.1" size="8"/>
                           </p:column>
                       </c:forEach>
                       <p:column><h:outputLabel value="1"/></p:column>
                   </p:row>
 
                </p:panelGrid>             
            </p:tab>

<!-- Dane uszczelki -->
<p:tab id="tabGasketData" title="Dane uszczelki" closable="true" disabled="false">
                <p:panelGrid >
                    <p:row>
                        <p:column colspan="2"><h:outputLabel value="typ obliczeniowy uszczelki"/></p:column>
                        <p:column colspan="2">
                            <h:selectOneMenu
                                id="gasket_name"
                                value="#{gasket.gasketType}"
                                valueChangeListener="#{gasket.gasketTypeChanged(1)}">
                                <f:ajax execute="gasket_name" render=":resultContent:FlangesResult:GasketGeo:n"/>
                                <f:selectItems value="#{gasket.gasket}"/>
                            </h:selectOneMenu>
                            
                            <!-- http://www.mkyong.com/jsf2/jsf-2-valuechangelistener-example/ -->
                        </p:column>   
                        <p:column rowspan="8"><img src="../resources/img/flange.JPG" width="200" /></p:column>
                    </p:row>                    
                    
                    <p:row>
                        <p:column colspan="2"><h:outputLabel value="nazwa uszczelki"/></p:column>
                        <p:column colspan="2">
                            <p:inputText id="gasket_type" value="#{flatGasket.name}" required="true" size="30"/>  
                        </p:column>    
                    </p:row>
                
                    <p:row>
                        <p:column><h:outputLabel value="średnica wewnętrzna"/></p:column>
                        <p:column><h:outputLabel value="dw = "/></p:column>
                        <p:column>
                            <p:spinner id="dw" value="#{flatGasket.dw}" stepFactor="0.5" min="0.5" max="10000.0" size="8">
                                <p:ajax update=":resultContent:FlangesResult:GasketGeo"/>
                            </p:spinner>
                        </p:column>
                        <p:column><h:outputLabel value="mm"/></p:column>
                    </p:row>
                    
                    <p:row>
                        <p:column><h:outputLabel value="średnica zewnętrzna"/></p:column>
                        <p:column><h:outputLabel value="dz = "/></p:column>
                        <p:column>
                            <p:spinner id="dz" value="#{flatGasket.dz}" stepFactor="0.5" min="0.5" max="10000.0" size="8">
                                <p:ajax update=":resultContent:FlangesResult:GasketGeo"/>
                            </p:spinner>    
                        </p:column>
                        <p:column><h:outputLabel value="mm"/></p:column>  
                    </p:row>                    
                    
                    <p:row>
                        <p:column><h:outputLabel value="grubość"/></p:column>
                        <p:column><h:outputLabel value="g = "/></p:column>
                        <p:column><p:spinner id="g" value="#{flatGasket.g}" stepFactor="0.5" min="0.1" max="100.0" size="8"/></p:column>
                        <p:column><h:outputLabel value="mm"/></p:column>      
                    </p:row>    
                    
                    <p:row>
                        <p:column><h:outputLabel value="współczynnik"/></p:column>
                        <p:column><h:outputLabel value="&sigma;m = "/></p:column>
                        <p:column>
                            <p:spinner id="sm" value="#{flatGasket.sm}" stepFactor="0.5" min="0.0" max="100.0" size="8">
                                <p:ajax update=":resultContent:FlangesResult:GasketGeo"/>
                            </p:spinner>    
                        </p:column>
                        <p:column><h:outputLabel value="MPa"/></p:column>   
                    </p:row>  
                    
                    <p:row>
                        <p:column><h:outputLabel value="współczynnik"/></p:column>
                        <p:column><h:outputLabel value="Sr = "/></p:column>
                        <p:column>
                            <p:spinner id="sr" value="#{flatGasket.sr}" stepFactor="0.5" min="0.0" max="100.0" size="8">
                                <p:ajax update=":resultContent:FlangesResult:GasketGeo"/>
                            </p:spinner>
                        </p:column>
                        <p:column><h:outputLabel value="MPa"/></p:column>   
                    </p:row>      
                    
                    <p:row>
                        <p:column><h:outputLabel value="współczynnik"/></p:column>
                        <p:column><h:outputLabel value="b = "/></p:column>
                        <p:column>
                            <p:spinner id="b" value="#{workCondition.b}" stepFactor="0.5" min="0.0" max="100.0" size="8">
                                <p:ajax update=":resultContent:FlangesResult:GasketGeo"/>
                            </p:spinner>    
                        </p:column>
                        <p:column><h:outputLabel value="1"/></p:column>    
                    </p:row>                    
                </p:panelGrid>
            </p:tab>

<!-- Flange data -->
            <p:tab id="tabFlange" title="Dane kołnierza"  disabled="#{controller.tabFlangeDataDisable}">
                <h:outputLabel id="xxx" value="Panel kołnierzy"/>
            </p:tab>
            
        </p:accordionPanel>
  
        </h:form>        
    </h:body>
</html>

